package com.timebank.score.controller;

import com.timebank.common.core.web.pojo.AjaxResult;
import com.timebank.common.security.annotation.RequiresLogin;
import com.timebank.score.pojo.entity.GoodsType;
import com.timebank.score.service.GoodsTypeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import org.aspectj.weaver.loadtime.Aj;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/**
 * 商品类型 控制层
 * @author shiliuyinzhen
 */
@RestController
@RequestMapping("/goodsType")
@Api(tags = "商品类型相关接口")
public class GoodsTypeController {

    @Resource
    private GoodsTypeService goodsTypeService;

    /**
     * 获取商品类型列表
     * @return
     */
    @GetMapping("/list")
    @ApiOperation("获取商品类型列表")
    public AjaxResult getGoodsTypeList(){
        List<GoodsType> list = goodsTypeService.getGoodsTypeList();
        return AjaxResult.success(list);
    }

    /**
     * 新增商品类型
     * @param goodsType
     * @return
     */
    @RequiresLogin
    @PostMapping
    @ApiOperation("新增商品类型")
    public AjaxResult addGoodsType(@RequestBody GoodsType goodsType){
        return goodsTypeService.addGoodsType(goodsType);
    }

    /**
     * 修改商品类型
     * @param goodsType
     * @return
     */
    @RequiresLogin
    @PutMapping("/{goodsTypeId}")
    @ApiOperation("修改商品类型")
    public AjaxResult updateGoodsType(@PathVariable("goodsTypeId") Integer goodsTypeId
            ,@RequestBody GoodsType goodsType){
        return goodsTypeService.updateGoodsType(goodsTypeId,goodsType);
    }

    /**
     * 批量删除商品类型
     * @param goodsTypeIds
     * @return
     */
    @RequiresLogin
    @DeleteMapping("/{goodsTypeIds}")
    @ApiOperation("批量删除商品类型")
    public AjaxResult BatchDeleteGoodsType(@PathVariable("goodsTypeIds")Integer[] goodsTypeIds){
        return goodsTypeService.batchDeleteGoodsType(goodsTypeIds);
    }
}
